﻿using Mes.Domain.BoundedContext;
using Mes.Application.DTO.Inputs.MasterData;
using Mes.Application.DTO.Results.MasterData;

namespace Mes.Application.Services.MasterData
{
    public interface IMaterialClassTypeService
    {
        /// <summary>
        /// 新增物料类类型
        /// </summary>
        /// <param name="materialClassTypeInput"></param>
        /// <returns></returns>
        Task AddMaterialClassTypeAsync(MaterialClassTypeInput materialClassTypeInput);

        /// <summary>
        /// 修改物料类类型
        /// </summary>
        /// <param name="materialClassTypeUpdateInput"></param>
        /// <returns></returns>
        Task UpdateMaterialClassTypeAsync(MaterialClassTypeUpdateInput materialClassTypeUpdateInput);

        /// <summary>
        /// 删除物料类类型
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        Task DeleteMaterialClassTypeAsync(int[] ids);

        /// <summary>
        /// 根据主键编号查询指定数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns>MaterialClassTypeResult</returns>
        Task<MaterialClassTypeResult> GetMaterialClassTypeAsync(int id);

        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="materialClassTypePageInput"></param>
        /// <returns>PagedItemsData<MaterialClassTypeResult></returns>
        Task<PagedItemsData<MaterialClassTypeResult>> GetMaterialClassTypesAsync(MaterialClassTypePageInput materialClassTypePageInput);
    }
}
